module.exports =
    /******/ (function (modules) { // webpackBootstrap
    /******/ 	// The module cache
    /******/
    var installedModules = {};
    /******/
    /******/ 	// The require function
    /******/
    function __webpack_require__(moduleId) {
        /******/
        /******/ 		// Check if module is in cache
        /******/
        if (installedModules[moduleId]) {
            /******/
            return installedModules[moduleId].exports;
            /******/
        }
        /******/ 		// Create a new module (and put it into the cache)
        /******/
        var module = installedModules[moduleId] = {
            /******/            i: moduleId,
            /******/            l: false,
            /******/            exports: {}
            /******/
        };
        /******/
        /******/ 		// Execute the module function
        /******/
        modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
        /******/
        /******/ 		// Flag the module as loaded
        /******/
        module.l = true;
        /******/
        /******/ 		// Return the exports of the module
        /******/
        return module.exports;
        /******/
    }

    /******/
    /******/
    /******/ 	// expose the modules object (__webpack_modules__)
    /******/
    __webpack_require__.m = modules;
    /******/
    /******/ 	// expose the module cache
    /******/
    __webpack_require__.c = installedModules;
    /******/
    /******/ 	// define getter function for harmony exports
    /******/
    __webpack_require__.d = function (exports, name, getter) {
        /******/
        if (!__webpack_require__.o(exports, name)) {
            /******/
            Object.defineProperty(exports, name, {enumerable: true, get: getter});
            /******/
        }
        /******/
    };
    /******/
    /******/ 	// define __esModule on exports
    /******/
    __webpack_require__.r = function (exports) {
        /******/
        if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {
            /******/
            Object.defineProperty(exports, Symbol.toStringTag, {value: 'Module'});
            /******/
        }
        /******/
        Object.defineProperty(exports, '__esModule', {value: true});
        /******/
    };
    /******/
    /******/ 	// create a fake namespace object
    /******/ 	// mode & 1: value is a module id, require it
    /******/ 	// mode & 2: merge all properties of value into the ns
    /******/ 	// mode & 4: return value when already ns object
    /******/ 	// mode & 8|1: behave like require
    /******/
    __webpack_require__.t = function (value, mode) {
        /******/
        if (mode & 1) value = __webpack_require__(value);
        /******/
        if (mode & 8) return value;
        /******/
        if ((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
        /******/
        var ns = Object.create(null);
        /******/
        __webpack_require__.r(ns);
        /******/
        Object.defineProperty(ns, 'default', {enumerable: true, value: value});
        /******/
        if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {
            return value[key];
        }.bind(null, key));
        /******/
        return ns;
        /******/
    };
    /******/
    /******/ 	// getDefaultExport function for compatibility with non-harmony modules
    /******/
    __webpack_require__.n = function (module) {
        /******/
        var getter = module && module.__esModule ?
            /******/            function getDefault() {
                return module['default'];
            } :
            /******/            function getModuleExports() {
                return module;
            };
        /******/
        __webpack_require__.d(getter, 'a', getter);
        /******/
        return getter;
        /******/
    };
    /******/
    /******/ 	// Object.prototype.hasOwnProperty.call
    /******/
    __webpack_require__.o = function (object, property) {
        return Object.prototype.hasOwnProperty.call(object, property);
    };
    /******/
    /******/ 	// __webpack_public_path__
    /******/
    __webpack_require__.p = "/dist/";
    /******/
    /******/
    /******/ 	// Load entry module and return exports
    /******/
    return __webpack_require__(__webpack_require__.s = 57);
    /******/
})
    /************************************************************************/
    /******/ ({

        /***/ 0:
        /***/ (function (module, __webpack_exports__, __webpack_require__) {

            "use strict";
            /* harmony export (binding) */
            __webpack_require__.d(__webpack_exports__, "a", function () {
                return normalizeComponent;
            });
            /* globals __VUE_SSR_CONTEXT__ */

// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
// This module is a runtime utility for cleaner component module output and will
// be included in the final webpack user bundle.

            function normalizeComponent(
                scriptExports,
                render,
                staticRenderFns,
                functionalTemplate,
                injectStyles,
                scopeId,
                moduleIdentifier, /* server only */
                shadowMode /* vue-cli only */
            ) {
                // Vue.extend constructor export interop
                var options = typeof scriptExports === 'function'
                    ? scriptExports.options
                    : scriptExports

                // render functions
                if (render) {
                    options.render = render
                    options.staticRenderFns = staticRenderFns
                    options._compiled = true
                }

                // functional template
                if (functionalTemplate) {
                    options.functional = true
                }

                // scopedId
                if (scopeId) {
                    options._scopeId = 'data-v-' + scopeId
                }

                var hook
                if (moduleIdentifier) { // server build
                    hook = function (context) {
                        // 2.3 injection
                        context =
                            context || // cached call
                            (this.$vnode && this.$vnode.ssrContext) || // stateful
                            (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
                        // 2.2 with runInNewContext: true
                        if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
                            context = __VUE_SSR_CONTEXT__
                        }
                        // inject component styles
                        if (injectStyles) {
                            injectStyles.call(this, context)
                        }
                        // register component module identifier for async chunk inferrence
                        if (context && context._registeredComponents) {
                            context._registeredComponents.add(moduleIdentifier)
                        }
                    }
                    // used by ssr in case component is cached and beforeCreate
                    // never gets called
                    options._ssrRegister = hook
                } else if (injectStyles) {
                    hook = shadowMode
                        ? function () {
                            injectStyles.call(this, this.$root.$options.shadowRoot)
                        }
                        : injectStyles
                }

                if (hook) {
                    if (options.functional) {
                        // for template-only hot-reload because in that case the render fn doesn't
                        // go through the normalizer
                        options._injectStyles = hook
                        // register for functioal component in vue file
                        var originalRender = options.render
                        options.render = function renderWithStyleInjection(h, context) {
                            hook.call(context)
                            return originalRender(h, context)
                        }
                    } else {
                        // inject component registration as beforeCreate hook
                        var existing = options.beforeCreate
                        options.beforeCreate = existing
                            ? [].concat(existing, hook)
                            : [hook]
                    }
                }

                return {
                    exports: scriptExports,
                    options: options
                }
            }


            /***/
        }),

        /***/ 11:
        /***/ (function (module, exports) {

            module.exports = require("element-ui/lib/mixins/migrating");

            /***/
        }),

        /***/ 26:
        /***/ (function (module, exports) {

            module.exports = require("babel-helper-vue-jsx-merge-props");

            /***/
        }),

        /***/ 42:
        /***/ (function (module, exports) {

            module.exports = require("element-ui/lib/progress");

            /***/
        }),

        /***/ 57:
        /***/ (function (module, __webpack_exports__, __webpack_require__) {

            "use strict";
            __webpack_require__.r(__webpack_exports__);

// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/upload/src/upload-list.vue?vue&type=template&id=173fedf5&
            var upload_listvue_type_template_id_173fedf5_render = function () {
                var _vm = this
                var _h = _vm.$createElement
                var _c = _vm._self._c || _h
                return _c(
                    "transition-group",
                    {
                        class: [
                            "el-upload-list",
                            "el-upload-list--" + _vm.listType,
                            {"is-disabled": _vm.disabled}
                        ],
                        attrs: {tag: "ul", name: "el-list"}
                    },
                    _vm._l(_vm.files, function (file) {
                        return _c(
                            "li",
                            {
                                key: file.uid,
                                class: [
                                    "el-upload-list__item",
                                    "is-" + file.status,
                                    _vm.focusing ? "focusing" : ""
                                ],
                                attrs: {tabindex: "0"},
                                on: {
                                    keydown: function ($event) {
                                        if (
                                            !("button" in $event) &&
                                            _vm._k($event.keyCode, "delete", [8, 46], $event.key, [
                                                "Backspace",
                                                "Delete",
                                                "Del"
                                            ])
                                        ) {
                                            return null
                                        }
                                        !_vm.disabled && _vm.$emit("remove", file)
                                    },
                                    focus: function ($event) {
                                        _vm.focusing = true
                                    },
                                    blur: function ($event) {
                                        _vm.focusing = false
                                    },
                                    click: function ($event) {
                                        _vm.focusing = false
                                    }
                                }
                            },
                            [
                                _vm._t(
                                    "default",
                                    [
                                        file.status !== "uploading" &&
                                        ["picture-card", "picture"].indexOf(_vm.listType) > -1
                                            ? _c("img", {
                                                staticClass: "el-upload-list__item-thumbnail",
                                                attrs: {src: file.url, alt: ""}
                                            })
                                            : _vm._e(),
                                        _c(
                                            "a",
                                            {
                                                staticClass: "el-upload-list__item-name",
                                                on: {
                                                    click: function ($event) {
                                                        _vm.handleClick(file)
                                                    }
                                                }
                                            },
                                            [
                                                _c("i", {staticClass: "el-icon-document"}),
                                                _vm._v(_vm._s(file.name) + "\n      ")
                                            ]
                                        ),
                                        _c(
                                            "label",
                                            {staticClass: "el-upload-list__item-status-label"},
                                            [
                                                _c("i", {
                                                    class: {
                                                        "el-icon-upload-success": true,
                                                        "el-icon-circle-check": _vm.listType === "text",
                                                        "el-icon-check":
                                                            ["picture-card", "picture"].indexOf(_vm.listType) > -1
                                                    }
                                                })
                                            ]
                                        ),
                                        !_vm.disabled
                                            ? _c("i", {
                                                staticClass: "el-icon-close",
                                                on: {
                                                    click: function ($event) {
                                                        _vm.$emit("remove", file)
                                                    }
                                                }
                                            })
                                            : _vm._e(),
                                        !_vm.disabled
                                            ? _c("i", {staticClass: "el-icon-close-tip"}, [
                                                _vm._v(_vm._s(_vm.t("el.upload.deleteTip")))
                                            ])
                                            : _vm._e(),
                                        file.status === "uploading"
                                            ? _c("el-progress", {
                                                attrs: {
                                                    type: _vm.listType === "picture-card" ? "circle" : "line",
                                                    "stroke-width": _vm.listType === "picture-card" ? 6 : 2,
                                                    percentage: _vm.parsePercentage(file.percentage)
                                                }
                                            })
                                            : _vm._e(),
                                        _vm.listType === "picture-card"
                                            ? _c("span", {staticClass: "el-upload-list__item-actions"}, [
                                                _vm.handlePreview && _vm.listType === "picture-card"
                                                    ? _c(
                                                        "span",
                                                        {
                                                            staticClass: "el-upload-list__item-preview",
                                                            on: {
                                                                click: function ($event) {
                                                                    _vm.handlePreview(file)
                                                                }
                                                            }
                                                        },
                                                        [_c("i", {staticClass: "el-icon-zoom-in"})]
                                                    )
                                                    : _vm._e(),
                                                !_vm.disabled
                                                    ? _c(
                                                        "span",
                                                        {
                                                            staticClass: "el-upload-list__item-delete",
                                                            on: {
                                                                click: function ($event) {
                                                                    _vm.$emit("remove", file)
                                                                }
                                                            }
                                                        },
                                                        [_c("i", {staticClass: "el-icon-delete"})]
                                                    )
                                                    : _vm._e()
                                            ])
                                            : _vm._e()
                                    ],
                                    {file: file}
                                )
                            ],
                            2
                        )
                    }),
                    0
                )
            }
            var staticRenderFns = []
            upload_listvue_type_template_id_173fedf5_render._withStripped = true


// CONCATENATED MODULE: ./packages/upload/src/upload-list.vue?vue&type=template&id=173fedf5&

// EXTERNAL MODULE: external "element-ui/lib/mixins/locale"
            var locale_ = __webpack_require__(6);
            var locale_default = /*#__PURE__*/__webpack_require__.n(locale_);

// EXTERNAL MODULE: external "element-ui/lib/progress"
            var progress_ = __webpack_require__(42);
            var progress_default = /*#__PURE__*/__webpack_require__.n(progress_);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/upload/src/upload-list.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//


            /* harmony default export */
            var upload_listvue_type_script_lang_js_ = ({

                name: 'ElUploadList',

                mixins: [locale_default.a],

                data: function data() {
                    return {
                        focusing: false
                    };
                },

                components: {ElProgress: progress_default.a},

                props: {
                    files: {
                        type: Array,
                        default: function _default() {
                            return [];
                        }
                    },
                    disabled: {
                        type: Boolean,
                        default: false
                    },
                    handlePreview: Function,
                    listType: String
                },
                methods: {
                    parsePercentage: function parsePercentage(val) {
                        return parseInt(val, 10);
                    },
                    handleClick: function handleClick(file) {
                        this.handlePreview && this.handlePreview(file);
                    }
                }
            });
// CONCATENATED MODULE: ./packages/upload/src/upload-list.vue?vue&type=script&lang=js&
            /* harmony default export */
            var src_upload_listvue_type_script_lang_js_ = (upload_listvue_type_script_lang_js_);
// EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
            var componentNormalizer = __webpack_require__(0);

// CONCATENATED MODULE: ./packages/upload/src/upload-list.vue


            /* normalize component */

            var component = Object(componentNormalizer["a" /* default */])(
                src_upload_listvue_type_script_lang_js_,
                upload_listvue_type_template_id_173fedf5_render,
                staticRenderFns,
                false,
                null,
                null,
                null
            )

            /* hot reload */
            if (false) {
                var api;
            }
            component.options.__file = "packages/upload/src/upload-list.vue"
            /* harmony default export */
            var upload_list = (component.exports);
// EXTERNAL MODULE: external "babel-helper-vue-jsx-merge-props"
            var external_babel_helper_vue_jsx_merge_props_ = __webpack_require__(26);
            var external_babel_helper_vue_jsx_merge_props_default = /*#__PURE__*/__webpack_require__.n(external_babel_helper_vue_jsx_merge_props_);

// CONCATENATED MODULE: ./packages/upload/src/ajax.js
            function getError(action, option, xhr) {
                var msg = void 0;
                if (xhr.response) {
                    msg = '' + (xhr.response.error || xhr.response);
                } else if (xhr.responseText) {
                    msg = '' + xhr.responseText;
                } else {
                    msg = 'fail to post ' + action + ' ' + xhr.status;
                }

                var err = new Error(msg);
                err.status = xhr.status;
                err.method = 'post';
                err.url = action;
                return err;
            }

            function getBody(xhr) {
                var text = xhr.responseText || xhr.response;
                if (!text) {
                    return text;
                }

                try {
                    return JSON.parse(text);
                } catch (e) {
                    return text;
                }
            }

            function upload(option) {
                if (typeof XMLHttpRequest === 'undefined') {
                    return;
                }

                var xhr = new XMLHttpRequest();
                var action = option.action;

                if (xhr.upload) {
                    xhr.upload.onprogress = function progress(e) {
                        if (e.total > 0) {
                            e.percent = e.loaded / e.total * 100;
                        }
                        option.onProgress(e);
                    };
                }

                var formData = new FormData();

                if (option.data) {
                    Object.keys(option.data).forEach(function (key) {
                        formData.append(key, option.data[key]);
                    });
                }

                formData.append(option.filename, option.file, option.file.name);

                xhr.onerror = function error(e) {
                    option.onError(e);
                };

                xhr.onload = function onload() {
                    if (xhr.status < 200 || xhr.status >= 300) {
                        return option.onError(getError(action, option, xhr));
                    }

                    option.onSuccess(getBody(xhr));
                };

                xhr.open('post', action, true);

                if (option.withCredentials && 'withCredentials' in xhr) {
                    xhr.withCredentials = true;
                }

                var headers = option.headers || {};

                for (var item in headers) {
                    if (headers.hasOwnProperty(item) && headers[item] !== null) {
                        xhr.setRequestHeader(item, headers[item]);
                    }
                }
                xhr.send(formData);
                return xhr;
            }

// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/upload/src/upload-dragger.vue?vue&type=template&id=7ebbf219&
            var upload_draggervue_type_template_id_7ebbf219_render = function () {
                var _vm = this
                var _h = _vm.$createElement
                var _c = _vm._self._c || _h
                return _c(
                    "div",
                    {
                        staticClass: "el-upload-dragger",
                        class: {
                            "is-dragover": _vm.dragover
                        },
                        on: {
                            drop: function ($event) {
                                $event.preventDefault()
                                return _vm.onDrop($event)
                            },
                            dragover: function ($event) {
                                $event.preventDefault()
                                return _vm.onDragover($event)
                            },
                            dragleave: function ($event) {
                                $event.preventDefault()
                                _vm.dragover = false
                            }
                        }
                    },
                    [_vm._t("default")],
                    2
                )
            }
            var upload_draggervue_type_template_id_7ebbf219_staticRenderFns = []
            upload_draggervue_type_template_id_7ebbf219_render._withStripped = true


// CONCATENATED MODULE: ./packages/upload/src/upload-dragger.vue?vue&type=template&id=7ebbf219&

// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/upload/src/upload-dragger.vue?vue&type=script&lang=js&
//
//
//
//
//
//
//
//
//
//
//
//
//

            /* harmony default export */
            var upload_draggervue_type_script_lang_js_ = ({
                name: 'ElUploadDrag',
                props: {
                    disabled: Boolean
                },
                inject: {
                    uploader: {
                        default: ''
                    }
                },
                data: function data() {
                    return {
                        dragover: false
                    };
                },

                methods: {
                    onDragover: function onDragover() {
                        if (!this.disabled) {
                            this.dragover = true;
                        }
                    },
                    onDrop: function onDrop(e) {
                        if (this.disabled || !this.uploader) return;
                        var accept = this.uploader.accept;
                        this.dragover = false;
                        if (!accept) {
                            this.$emit('file', e.dataTransfer.files);
                            return;
                        }
                        this.$emit('file', [].slice.call(e.dataTransfer.files).filter(function (file) {
                            var type = file.type,
                                name = file.name;

                            var extension = name.indexOf('.') > -1 ? '.' + name.split('.').pop() : '';
                            var baseType = type.replace(/\/.*$/, '');
                            return accept.split(',').map(function (type) {
                                return type.trim();
                            }).filter(function (type) {
                                return type;
                            }).some(function (acceptedType) {
                                if (/\..+$/.test(acceptedType)) {
                                    return extension === acceptedType;
                                }
                                if (/\/\*$/.test(acceptedType)) {
                                    return baseType === acceptedType.replace(/\/\*$/, '');
                                }
                                if (/^[^\/]+\/[^\/]+$/.test(acceptedType)) {
                                    return type === acceptedType;
                                }
                                return false;
                            });
                        }));
                    }
                }
            });
// CONCATENATED MODULE: ./packages/upload/src/upload-dragger.vue?vue&type=script&lang=js&
            /* harmony default export */
            var src_upload_draggervue_type_script_lang_js_ = (upload_draggervue_type_script_lang_js_);
// CONCATENATED MODULE: ./packages/upload/src/upload-dragger.vue


            /* normalize component */

            var upload_dragger_component = Object(componentNormalizer["a" /* default */])(
                src_upload_draggervue_type_script_lang_js_,
                upload_draggervue_type_template_id_7ebbf219_render,
                upload_draggervue_type_template_id_7ebbf219_staticRenderFns,
                false,
                null,
                null,
                null
            )

            /* hot reload */
            if (false) {
                var upload_dragger_api;
            }
            upload_dragger_component.options.__file = "packages/upload/src/upload-dragger.vue"
            /* harmony default export */
            var upload_dragger = (upload_dragger_component.exports);
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/upload/src/upload.vue?vue&type=script&lang=js&


            /* harmony default export */
            var uploadvue_type_script_lang_js_ = ({
                inject: ['uploader'],
                components: {
                    UploadDragger: upload_dragger
                },
                props: {
                    type: String,
                    action: {
                        type: String,
                        required: true
                    },
                    name: {
                        type: String,
                        default: 'file'
                    },
                    data: Object,
                    headers: Object,
                    withCredentials: Boolean,
                    multiple: Boolean,
                    accept: String,
                    onStart: Function,
                    onProgress: Function,
                    onSuccess: Function,
                    onError: Function,
                    beforeUpload: Function,
                    drag: Boolean,
                    onPreview: {
                        type: Function,
                        default: function _default() {
                        }
                    },
                    onRemove: {
                        type: Function,
                        default: function _default() {
                        }
                    },
                    fileList: Array,
                    autoUpload: Boolean,
                    listType: String,
                    httpRequest: {
                        type: Function,
                        default: upload
                    },
                    disabled: Boolean,
                    limit: Number,
                    onExceed: Function
                },

                data: function data() {
                    return {
                        mouseover: false,
                        reqs: {}
                    };
                },


                methods: {
                    isImage: function isImage(str) {
                        return str.indexOf('image') !== -1;
                    },
                    handleChange: function handleChange(ev) {
                        var files = ev.target.files;

                        if (!files) return;
                        this.uploadFiles(files);
                    },
                    uploadFiles: function uploadFiles(files) {
                        var _this = this;

                        if (this.limit && this.fileList.length + files.length > this.limit) {
                            this.onExceed && this.onExceed(files, this.fileList);
                            return;
                        }

                        var postFiles = Array.prototype.slice.call(files);
                        if (!this.multiple) {
                            postFiles = postFiles.slice(0, 1);
                        }

                        if (postFiles.length === 0) {
                            return;
                        }

                        postFiles.forEach(function (rawFile) {
                            _this.onStart(rawFile);
                            if (_this.autoUpload) _this.upload(rawFile);
                        });
                    },
                    upload: function upload(rawFile) {
                        var _this2 = this;

                        this.$refs.input.value = null;

                        if (!this.beforeUpload) {
                            return this.post(rawFile);
                        }

                        var before = this.beforeUpload(rawFile);
                        if (before && before.then) {
                            before.then(function (processedFile) {
                                var fileType = Object.prototype.toString.call(processedFile);

                                if (fileType === '[object File]' || fileType === '[object Blob]') {
                                    if (fileType === '[object Blob]') {
                                        processedFile = new File([processedFile], rawFile.name, {
                                            type: rawFile.type
                                        });
                                    }
                                    for (var p in rawFile) {
                                        if (rawFile.hasOwnProperty(p)) {
                                            processedFile[p] = rawFile[p];
                                        }
                                    }
                                    _this2.post(processedFile);
                                } else {
                                    _this2.post(rawFile);
                                }
                            }, function () {
                                _this2.onRemove(null, rawFile);
                            });
                        } else if (before !== false) {
                            this.post(rawFile);
                        } else {
                            this.onRemove(null, rawFile);
                        }
                    },
                    abort: function abort(file) {
                        var reqs = this.reqs;

                        if (file) {
                            var uid = file;
                            if (file.uid) uid = file.uid;
                            if (reqs[uid]) {
                                reqs[uid].abort();
                            }
                        } else {
                            Object.keys(reqs).forEach(function (uid) {
                                if (reqs[uid]) reqs[uid].abort();
                                delete reqs[uid];
                            });
                        }
                    },
                    post: function post(rawFile) {
                        var _this3 = this;

                        var uid = rawFile.uid;

                        var options = {
                            headers: this.headers,
                            withCredentials: this.withCredentials,
                            file: rawFile,
                            data: this.data,
                            filename: this.name,
                            action: this.action,
                            onProgress: function onProgress(e) {
                                _this3.onProgress(e, rawFile);
                            },
                            onSuccess: function onSuccess(res) {
                                _this3.onSuccess(res, rawFile);
                                delete _this3.reqs[uid];
                            },
                            onError: function onError(err) {
                                _this3.onError(err, rawFile);
                                delete _this3.reqs[uid];
                            }
                        };
                        var req = this.httpRequest(options);
                        this.reqs[uid] = req;
                        if (req && req.then) {
                            req.then(options.onSuccess, options.onError);
                        }
                    },
                    handleClick: function handleClick() {
                        if (!this.disabled) {
                            this.$refs.input.value = null;
                            this.$refs.input.click();
                        }
                    },
                    handleKeydown: function handleKeydown(e) {
                        if (e.target !== e.currentTarget) return;
                        if (e.keyCode === 13 || e.keyCode === 32) {
                            this.handleClick();
                        }
                    }
                },

                render: function render(h) {
                    var handleClick = this.handleClick,
                        drag = this.drag,
                        name = this.name,
                        handleChange = this.handleChange,
                        multiple = this.multiple,
                        accept = this.accept,
                        listType = this.listType,
                        uploadFiles = this.uploadFiles,
                        disabled = this.disabled,
                        handleKeydown = this.handleKeydown;

                    var data = {
                        class: {
                            'el-upload': true
                        },
                        on: {
                            click: handleClick,
                            keydown: handleKeydown
                        }
                    };
                    data.class['el-upload--' + listType] = true;
                    return h(
                        'div',
                        external_babel_helper_vue_jsx_merge_props_default()([data, {
                            attrs: {tabindex: '0'}
                        }]),
                        [drag ? h(
                            'upload-dragger',
                            {
                                attrs: {disabled: disabled},
                                on: {
                                    'file': uploadFiles
                                }
                            },
                            [this.$slots.default]
                        ) : this.$slots.default, h('input', {
                            'class': 'el-upload__input',
                            attrs: {type: 'file', name: name, multiple: multiple, accept: accept},
                            ref: 'input',
                            on: {
                                'change': handleChange
                            }
                        })]
                    );
                }
            });
// CONCATENATED MODULE: ./packages/upload/src/upload.vue?vue&type=script&lang=js&
            /* harmony default export */
            var src_uploadvue_type_script_lang_js_ = (uploadvue_type_script_lang_js_);
// CONCATENATED MODULE: ./packages/upload/src/upload.vue
            var upload_render, upload_staticRenderFns


            /* normalize component */

            var upload_component = Object(componentNormalizer["a" /* default */])(
                src_uploadvue_type_script_lang_js_,
                upload_render,
                upload_staticRenderFns,
                false,
                null,
                null,
                null
            )

            /* hot reload */
            if (false) {
                var upload_api;
            }
            upload_component.options.__file = "packages/upload/src/upload.vue"
            /* harmony default export */
            var src_upload = (upload_component.exports);
// EXTERNAL MODULE: external "element-ui/lib/mixins/migrating"
            var migrating_ = __webpack_require__(11);
            var migrating_default = /*#__PURE__*/__webpack_require__.n(migrating_);

// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/upload/src/index.vue?vue&type=script&lang=js&


            function noop() {
            }

            /* harmony default export */
            var srcvue_type_script_lang_js_ = ({
                name: 'ElUpload',

                mixins: [migrating_default.a],

                components: {
                    ElProgress: progress_default.a,
                    UploadList: upload_list,
                    Upload: src_upload
                },

                provide: function provide() {
                    return {
                        uploader: this
                    };
                },


                inject: {
                    elForm: {
                        default: ''
                    }
                },

                props: {
                    action: {
                        type: String,
                        required: true
                    },
                    headers: {
                        type: Object,
                        default: function _default() {
                            return {};
                        }
                    },
                    data: Object,
                    multiple: Boolean,
                    name: {
                        type: String,
                        default: 'file'
                    },
                    drag: Boolean,
                    dragger: Boolean,
                    withCredentials: Boolean,
                    showFileList: {
                        type: Boolean,
                        default: true
                    },
                    accept: String,
                    type: {
                        type: String,
                        default: 'select'
                    },
                    beforeUpload: Function,
                    beforeRemove: Function,
                    onRemove: {
                        type: Function,
                        default: noop
                    },
                    onChange: {
                        type: Function,
                        default: noop
                    },
                    onPreview: {
                        type: Function
                    },
                    onSuccess: {
                        type: Function,
                        default: noop
                    },
                    onProgress: {
                        type: Function,
                        default: noop
                    },
                    onError: {
                        type: Function,
                        default: noop
                    },
                    fileList: {
                        type: Array,
                        default: function _default() {
                            return [];
                        }
                    },
                    autoUpload: {
                        type: Boolean,
                        default: true
                    },
                    listType: {
                        type: String,
                        default: 'text' // text,picture,picture-card
                    },
                    httpRequest: Function,
                    disabled: Boolean,
                    limit: Number,
                    onExceed: {
                        type: Function,
                        default: noop
                    }
                },

                data: function data() {
                    return {
                        uploadFiles: [],
                        dragOver: false,
                        draging: false,
                        tempIndex: 1
                    };
                },


                computed: {
                    uploadDisabled: function uploadDisabled() {
                        return this.disabled || (this.elForm || {}).disabled;
                    }
                },

                watch: {
                    listType: function listType(type) {
                        if (type === 'picture-card' || type === 'picture') {
                            this.uploadFiles = this.uploadFiles.map(function (file) {
                                if (!file.url && file.raw) {
                                    try {
                                        file.url = URL.createObjectURL(file.raw);
                                    } catch (err) {
                                        console.error('[Element Error][Upload]', err);
                                    }
                                }
                                return file;
                            });
                        }
                    },

                    fileList: {
                        immediate: true,
                        handler: function handler(fileList) {
                            var _this = this;

                            this.uploadFiles = fileList.map(function (item) {
                                item.uid = item.uid || Date.now() + _this.tempIndex++;
                                item.status = item.status || 'success';
                                return item;
                            });
                        }
                    }
                },

                methods: {
                    handleStart: function handleStart(rawFile) {
                        rawFile.uid = Date.now() + this.tempIndex++;
                        var file = {
                            status: 'ready',
                            name: rawFile.name,
                            size: rawFile.size,
                            percentage: 0,
                            uid: rawFile.uid,
                            raw: rawFile
                        };

                        if (this.listType === 'picture-card' || this.listType === 'picture') {
                            try {
                                file.url = URL.createObjectURL(rawFile);
                            } catch (err) {
                                console.error('[Element Error][Upload]', err);
                                return;
                            }
                        }

                        this.uploadFiles.push(file);
                        this.onChange(file, this.uploadFiles);
                    },
                    handleProgress: function handleProgress(ev, rawFile) {
                        var file = this.getFile(rawFile);
                        this.onProgress(ev, file, this.uploadFiles);
                        file.status = 'uploading';
                        file.percentage = ev.percent || 0;
                    },
                    handleSuccess: function handleSuccess(res, rawFile) {
                        var file = this.getFile(rawFile);

                        if (file) {
                            file.status = 'success';
                            file.response = res;

                            this.onSuccess(res, file, this.uploadFiles);
                            this.onChange(file, this.uploadFiles);
                        }
                    },
                    handleError: function handleError(err, rawFile) {
                        var file = this.getFile(rawFile);
                        var fileList = this.uploadFiles;

                        file.status = 'fail';

                        fileList.splice(fileList.indexOf(file), 1);

                        this.onError(err, file, this.uploadFiles);
                        this.onChange(file, this.uploadFiles);
                    },
                    handleRemove: function handleRemove(file, raw) {
                        var _this2 = this;

                        if (raw) {
                            file = this.getFile(raw);
                        }
                        var doRemove = function doRemove() {
                            _this2.abort(file);
                            var fileList = _this2.uploadFiles;
                            fileList.splice(fileList.indexOf(file), 1);
                            _this2.onRemove(file, fileList);
                        };

                        if (!this.beforeRemove) {
                            doRemove();
                        } else if (typeof this.beforeRemove === 'function') {
                            var before = this.beforeRemove(file, this.uploadFiles);
                            if (before && before.then) {
                                before.then(function () {
                                    doRemove();
                                }, noop);
                            } else if (before !== false) {
                                doRemove();
                            }
                        }
                    },
                    getFile: function getFile(rawFile) {
                        var fileList = this.uploadFiles;
                        var target = void 0;
                        fileList.every(function (item) {
                            target = rawFile.uid === item.uid ? item : null;
                            return !target;
                        });
                        return target;
                    },
                    abort: function abort(file) {
                        this.$refs['upload-inner'].abort(file);
                    },
                    clearFiles: function clearFiles() {
                        this.uploadFiles = [];
                    },
                    submit: function submit() {
                        var _this3 = this;

                        this.uploadFiles.filter(function (file) {
                            return file.status === 'ready';
                        }).forEach(function (file) {
                            _this3.$refs['upload-inner'].upload(file.raw);
                        });
                    },
                    getMigratingConfig: function getMigratingConfig() {
                        return {
                            props: {
                                'default-file-list': 'default-file-list is renamed to file-list.',
                                'show-upload-list': 'show-upload-list is renamed to show-file-list.',
                                'thumbnail-mode': 'thumbnail-mode has been deprecated, you can implement the same effect according to this case: http://element.eleme.io/#/zh-CN/component/upload#yong-hu-tou-xiang-shang-chuan'
                            }
                        };
                    }
                },

                beforeDestroy: function beforeDestroy() {
                    this.uploadFiles.forEach(function (file) {
                        if (file.url && file.url.indexOf('blob:') === 0) {
                            URL.revokeObjectURL(file.url);
                        }
                    });
                },
                render: function render(h) {
                    var _this4 = this;

                    var uploadList = void 0;

                    if (this.showFileList) {
                        uploadList = h(
                            upload_list,
                            {
                                attrs: {
                                    disabled: this.uploadDisabled,
                                    listType: this.listType,
                                    files: this.uploadFiles,

                                    handlePreview: this.onPreview
                                },
                                on: {
                                    'remove': this.handleRemove
                                }
                            },
                            [function (props) {
                                if (_this4.$scopedSlots.file) {
                                    return _this4.$scopedSlots.file({
                                        file: props.file
                                    });
                                }
                            }]
                        );
                    }

                    var uploadData = {
                        props: {
                            type: this.type,
                            drag: this.drag,
                            action: this.action,
                            multiple: this.multiple,
                            'before-upload': this.beforeUpload,
                            'with-credentials': this.withCredentials,
                            headers: this.headers,
                            name: this.name,
                            data: this.data,
                            accept: this.accept,
                            fileList: this.uploadFiles,
                            autoUpload: this.autoUpload,
                            listType: this.listType,
                            disabled: this.uploadDisabled,
                            limit: this.limit,
                            'on-exceed': this.onExceed,
                            'on-start': this.handleStart,
                            'on-progress': this.handleProgress,
                            'on-success': this.handleSuccess,
                            'on-error': this.handleError,
                            'on-preview': this.onPreview,
                            'on-remove': this.handleRemove,
                            'http-request': this.httpRequest
                        },
                        ref: 'upload-inner'
                    };

                    var trigger = this.$slots.trigger || this.$slots.default;
                    var uploadComponent = h(
                        'upload',
                        uploadData,
                        [trigger]
                    );

                    return h('div', [this.listType === 'picture-card' ? uploadList : '', this.$slots.trigger ? [uploadComponent, this.$slots.default] : uploadComponent, this.$slots.tip, this.listType !== 'picture-card' ? uploadList : '']);
                }
            });
// CONCATENATED MODULE: ./packages/upload/src/index.vue?vue&type=script&lang=js&
            /* harmony default export */
            var upload_srcvue_type_script_lang_js_ = (srcvue_type_script_lang_js_);
// CONCATENATED MODULE: ./packages/upload/src/index.vue
            var src_render, src_staticRenderFns


            /* normalize component */

            var src_component = Object(componentNormalizer["a" /* default */])(
                upload_srcvue_type_script_lang_js_,
                src_render,
                src_staticRenderFns,
                false,
                null,
                null,
                null
            )

            /* hot reload */
            if (false) {
                var src_api;
            }
            src_component.options.__file = "packages/upload/src/index.vue"
            /* harmony default export */
            var src = (src_component.exports);
// CONCATENATED MODULE: ./packages/upload/index.js


            /* istanbul ignore next */
            src.install = function (Vue) {
                Vue.component(src.name, src);
            };

            /* harmony default export */
            var packages_upload = __webpack_exports__["default"] = (src);

            /***/
        }),

        /***/ 6:
        /***/ (function (module, exports) {

            module.exports = require("element-ui/lib/mixins/locale");

            /***/
        })

        /******/
    });